package com.cetool.autocms.service.tradesequence;

import com.cetool.autocms.common.PageRequest;
import com.cetool.autocms.enumeration.OperateEnum;
import com.cetool.autocms.pojo.dto.tradesequence.TradeSequenceInfoDTO;
import com.cetool.autocms.pojo.request.tradesequence.DeleteTradeSequenceRequest;
import com.cetool.autocms.pojo.request.tradesequence.QueryTradeSequenceListRequest;
import com.cetool.autocms.pojo.request.tradesequence.SaveTradeSequenceRequest;
import com.cetool.autocms.pojo.request.tradesequence.UpdateTradeSequenceRequest;
import com.github.pagehelper.PageSerializable;
import org.springframework.web.bind.annotation.RequestBody;

import javax.validation.Valid;

/**
 * 交易序列管理接口服务
 *
 * @author 戴越
 * @date 2021/11/10
 */
public interface TransactionSerialService {

    /**
     * 分页查询交易序列列表
     *
     * @param request 分页查询交易序列请求实体
     * @return 交易序列信息分页列表
     * @author 戴越
     * @date 2021/11/12
     */
    PageSerializable<TradeSequenceInfoDTO> listPageTradeSequence(PageRequest<QueryTradeSequenceListRequest> request);

    /**
     * 新增交易序列
     *
     * @param request 新增交易序列请求实体
     * @return 操作信息
     * @author 戴越
     * @date 2021/11/12
     */
    OperateEnum saveTradeSequence(SaveTradeSequenceRequest request);

    /**
     * 删除交易序列
     *
     * @param request 删除交易序列请求实体
     * @return 操作信息
     * @author 戴越
     * @date 2021/11/12
     */
    OperateEnum deleteTradeSequence(DeleteTradeSequenceRequest request);

    /**
     * 修改交易序列
     *
     * @param request 修改交易序列请求实体
     * @return 操作信息
     * @author 戴越
     * @date 2021/11/12
     */
    OperateEnum updateTradeSequence(UpdateTradeSequenceRequest request);

}
